﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program1
    {
        public static Dictionary<string, float> list = new Dictionary<string, float>();
        static void Main(string[] args)
        {
            //第一题：
            //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
            //请编写相关代码，
            //1、捕获FormatException异常，并打印输出“异常已处理；
            //2、捕获OverflowException异常，数值超出float范围的异常，并打印输出“异常已处理；
            //3、捕获一般异常Exception异常。
            //4、最终处理finally
            //录入成绩结束后，请输出，总学生数，总分数，平均分
            float score = 0;
            Console.WriteLine("请输入学生的学号：");
            string str = Console.ReadLine();
            if (!list.ContainsKey(str))
            {
                try
                {
                    Console.WriteLine("请输入该学生的成绩：");
                    score = float.Parse(Console.ReadLine());
                }
                catch (FormatException e)
                {
                    Console.WriteLine("转换异常");
                    Console.WriteLine("异常已处理");
                    Console.WriteLine(e.Message);
                }
                catch (OverflowException e)
                {
                    Console.WriteLine("数值超出float范围");
                    Console.WriteLine("异常已处理");
                    Console.WriteLine(e.Message);
                }
                catch (Exception e)
                {
                    Console.WriteLine("捕获一般异常");
                    Console.WriteLine("异常已处理");
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    list.Add(str, score);
                    Console.WriteLine("录入成功！");
                    Console.WriteLine("请选择：1.继续录入  2.结束录入");
                    int a = int.Parse(Console.ReadLine());
                    if (a == 1)
                    {
                        Main(null);
                    }
                    else if (a == 2)
                    {
                        Console.WriteLine("总学生数：{0}",list.Count);
                        float sum = 0;
                        foreach (var item in list.Values)
                        {
                            sum += item;
                        }
                        Console.WriteLine("总成绩为：{0}",sum);
                        Console.WriteLine("平均分为：{0}",(sum/list.Count));
 
                    }
                }
            }
            else
            {
                Console.WriteLine("你的输入有误或学号重复！");
                Main(null);
            }
        }
    }
}
